/*
 * Programa que solicita departamento y precio de cada uno de 10 articulos,
 * despues de introducir los 10 articulos calcula cuantos articulos con precio
 * superior a 20€ se han introducido de cada departamento y lo muestra en
 * pantalla.
 * Si se introducen 3 veces seguidas un codigo de departamento no valido
 * el programa muestra una indicacion en pantalla y se detiene.
 */
package Pregunta2;

//Importamos la biblioteca necesaria para utilizar el escaner de teclado
import java.util.Scanner;

/**
 * @author Miguel Gonzalez Jimenez
 */
public class EAC2_PREGUNTA2 {
    //Creamos una constante con el numero maximo de productos que queremos
    private static final int NUM_PRODUCTES = 5;
    
    public static void main(String[] args) {
        //Creamos el objeto escaner
        Scanner teclat = new Scanner(System.in); 
        //Creamos las variable que necesitamos
        float preu; //Almacena el precio del articulo
	int alimentacioMesDe20=0; //Almacena el numero de articulos de alimentacion con precio superior a 20€
        int textilMesDe20=0; //Almacena el numero de articulos de textil con precio superior a 20€
        int joguinesMesDe20=0; //Almacena el numero de articulos de joguines con precio superior a 20€
        int llarMesDe20=0;  //Almacena el numero de articulos de Llar con precio superior a 20€
        int departamento=0; //Almacena el departamento que se ha seleccionado
        int intentos =0;    //Almacena el numero de intentos de introduccion de codigo, por cada producto
        int producte =0;    //Almacena el numero de productos que se introducen
        
        //Mustra informacion necesaria en pantalla
        System.out.println("Introduzca el codigo de departamento:");
        System.out.println("\t1 (Alimentació)");
        System.out.println("\t2 (Textil)");
        System.out.println("\t3 (Joguines)");
        System.out.println("\t4 (Llar)");
        
        //Bucle que acabará cuando tengamos todos los productos introducidos
        while( producte < NUM_PRODUCTES){   
            departamento = 0 ;  //Se inicializa cada vez esta variable
            intentos = 0;   //Se inicializa cada vez esta variable
            //Bucle que se repetira hasta que introduzcamos un numero valido de departamento
            //o superemos el maximo de intentos
            while(!(departamento > 0 && departamento < 5) && intentos < 3){            
                System.out.print("Codigo ?: "); //Solicita el codigo por pantalla        
                departamento = teclat.nextInt(); //Almacena el valor en la variable departamento
                switch(departamento){
                    case 1: //Si departamento es igual a 1 es Alimentacio
                        System.out.println("heu seleccionat: Departament de Alimentació");
                        break;
                    case 2: //Si departamento es igual a 1 es textil
                        System.out.println("heu seleccionat: Departament de Textil");
                        break;
                    case 3: //Si departamento es igual a 1 es joquines
                        System.out.println("heu seleccionat: Departament de Joguines");
                        break;
                    case 4: //Si departamento es igual a 1 es llar
                        System.out.println("heu seleccionat: Departament de Llar");      
                        break;
                }
                intentos++; //Incrementa en uno el numero de reintentos      
            }   
            //Si el departamento es valido, ejecuta este codigo
            if(departamento >= 1 && departamento <= 4){  
                producte++; //Incremente en uno los productos que se han introducido
                //Ejecuta un bucle hasta que consigua un valor de precio valido
                do { 
                    System.out.print("Preu ? : "); 
                    preu = teclat.nextFloat(); //Almacena el precio introducido por el teclado en la variable
                    teclat.nextLine(); 
                    // Fins que siguin correctes 
                } while (preu < 0.0); 
                    // Si el precio final es superior a 20€, contar el articulo del departamento concreto 
                if(preu > 20){
                    if(departamento == 1)
                        alimentacioMesDe20++;
                    else if(departamento ==2)
                        textilMesDe20++;
                    else if(departamento == 3)
                        joguinesMesDe20++;
                    else if(departamento ==4)
                        llarMesDe20++;
                } 
                // Mostrar el preu final. 
                System.out.println("Preu del producte : " + preu);            
            }
            //Si el departamento no es valido, teniendo en cuenta que deben haberse
            //superado los reintentos, ejecuta este otro codigo
            else{
                    System.out.println("Pida ayuda por favor!!");
                    producte =12; //para salir del bucle
            }
        } 
        //Si ha salido del bucle correctamente, muestra los resultados por pantalla
        if(producte != 12){
            System.out.println("");
            System.out.println("Resultados....");
            System.out.println("Alimentació: Productes amb preu superior a 20€: " + alimentacioMesDe20);
            System.out.println("Textil: Productes amb preu superior a 20€: " + textilMesDe20);
            System.out.println("Joguines: Productes amb preu superior a 20€: " + joguinesMesDe20);
            System.out.println("Llar: Productes amb preu superior a 20€: " + llarMesDe20);            
        }        
    }
}
